<template>
  <rp-button text="加入自动任务" code="task-opera" size="" type="warning" @click="showTask"/>
  <Modal
    v-model="show"
    title="自动任务创建"
    @on-ok="toTask"
    @on-cancel="showTask">
    <div class="model-box">
      备注信息：
      <Input v-model="remark" placeholder="输入备注" style="width: 100%;margin-bottom: 20px;" />
      执行时间：
      <DatePicker v-model="date" type="datetime" format="yyyy-MM-dd HH:mm" :options="options" placeholder="请选择执行时间" style="width: 100%;margin-bottom: 20px;" />
    </div>
  </Modal>
</template>

<script>
import util from "@/libs/util";
import task from "@/api/task";

export default {
  name: 'task-button',
  props: {
    // 模块
    type: {
      default: 'heloy'
    },
    // 类型
    mold: {
      default: 'order'
    },
    // 合成列表
    list: {
      default: []
    },
    // 内容
    body: {
      default: {}
    },
  },
  data() {
    return {
      show: false,
      remark: '',
      date: null,
      options: {
        disabledDate (date) {
          return date && date.valueOf() < Date.now() - 86400000;
        }
      },
    }
  },
  methods: {
    /**
     * 丢自动任务
     * @returns {Promise<void>}
     */
    async toTask() {
      if (!this.remark) {
        return util.error('请输入备注信息');
      }
      if (!this.date) {
        return util.error('请选择执行时间');
      }
      if (!this.body.token) {
        return util.error('请选择上传token');
      }
      if (!this.body.appid && this.type == 'heloy') {
        return util.error('请选择上传Appid');
      }
      if (!this.body.id) {
        return util.error('请选择产品');
      }
      let post = {
        type: this.type,
        mold: this.mold,
        remark: this.remark,
        date: this.$format(this.date),
        body: {
          token: this.body.token,
          appid: this.body.appid,
          id: this.body.id,
          number: this.body.number,
          list: this.list,
          success_number: this.body.success_number || 1
        }
      };
      let res = await task.store(post);
      if (res) {
        return util.success('提交成功');
      }
    },
    /**
     * 验证查询
     * @returns {boolean}
     */
    showTask() {
      this.show = !this.show;
    }
  },
}
</script>

<style scoped lang="less">
.btn-box {
  margin: 0 10px;
}
.model-box {
  color: #3e3e3e;
}
</style>
